﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Vincent.Shop.DomainModel;
using System.Web;

namespace Vincent.Shop.Common
{
    /// <summary>
    /// 页面调用基类
    /// </summary>
    public class PageBase : System.Web.UI.Page
    {
        public UsersEntity _User;                           // 当前登录用户信息

        public bool isRequestLogin = false;                 // 是否需要登录
        public string RequestLoginPage = "";                // 需要登录后，转跳到 Login.aspx 页面，登录后，会按此页面自动定位回来
        public bool isFramePage = false;                    // 是否框架内的页面。如果是框架内的页面，转跳登录将在 _top 进行。
        public string RequestCompetences = "";              // 需要的权限列表，用 [Administrator][Competence][...]... 表示

        public PageBase()
        {
        }

        /// <summary>
        ///  重写页面上的 OnInit 方法
        /// </summary>
        /// <param name="e"></param>
        protected override void OnInit(EventArgs e)
        {
            // 判断是否已登录
            IsLogin();

            // 从Session中获取用户信息
            _User = (UsersEntity)HttpContext.Current.Session["info"];
            if (string.IsNullOrEmpty(_User.Id.ToString()))
            {
                Response.Write("未获得权限");
                Response.End();
            }

            // 判断页面权限         
            //if (isRequestLogin && (RequestCompetences != "") && (!_User.Competences.IsOwnedCompetences(RequestCompetences)))
            //{
            //    Utility.GoError("对不起，您没有足够的权限访问此页面");
            //    return;
            //}

            base.OnInit(e);
        }

        /// <summary>
        /// 判断是否已经登录
        /// </summary>
        public static void IsLogin()
        {
            if (HttpContext.Current.Session["info"] == null)
            {
                HttpContext.Current.Response.Write("<script language=\"javascript\">alert(\"权限失效!请重新登陆！\"); top.location.href=\"" + Utility.GetAuthUrl() + "\"; </script>");
                HttpContext.Current.Response.End();
            }
        }
    }
}
